import { PNT, setNavBarTitle, pushPagePath, checkMobile } from '../../../../utils/utils';
import { GetAddressInfo, setDefaultAddress } from '../../../../utils/apis';
Page({
  /**
   * 页面的初始数据
   */
  data: {
    id: 0,// 当前地址id，编辑时
    type: "edit",
    multiIndex: [0, 0, 0],
    column:0,
    multiArray:[],
    param:{},
  },

  bindMultiPickerChange: function (e) {
    console.log(e)
    console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      multiIndex: e.detail.value
    })
  },
  bindMultiPickerColumnChange: function (e) {
    var multiIndex = this.data.multiIndex;
    if(e.detail.column == 0){
      multiIndex[1] = 0;
      multiIndex[2] = 0;
    }else if(e.detail.column == 1){
      multiIndex[2] = 0;
    }
    multiIndex[e.detail.column] = e.detail.value;
    this.setData({
      multiIndex: multiIndex,
    })
    this.addressAssign(this.data.region, this, e.detail.column, this.data.multiIndex);
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (opt) {
    this.loginModal = this.selectComponent("#login-modal");
    if (!this.loginModal.check()) {
      return false;
    }
    var info = wx.getStorageSync('userInfo');
    this.setData({
      info:info,
      id: opt.id ? parseInt(opt.id) : 0,
    })
    // 添加初始化地址，编辑初始化数据
    if (opt.type === 'add') {
      setNavBarTitle(PNT.address.add);
      this.getAddressInfo();
    }else{
      setNavBarTitle(PNT.address.edit);
      this.getAddressInfo();
    }
    this.setData({
      type: opt.type || 'edit',
      
    });
  },

  bindRegionChange: function (e) {
    console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      region: e.detail.value
    })
  },
  /**
   * 登录回调
   * @author darlang
   */
  loginCallback(cb) {
    if (cb.detail.type === 'success') {
      this.initAddress();
    }
  },

  /**
   * 获取地址信息
   * @author darlang
   */
  getAddressInfo(){
    var self = this;
    var data = {};
    data.address_id = this.data.id;
    data.user_id = this.data.info.user_id;
    GetAddressInfo(data).then(res=>{
      if(res.error_code == 10000){
        var multiIndex = this.data.multiIndex;
        self.setData({
          region: res.region,
          address: res.data,
          multiIndex: multiIndex,
        })
        if(self.data.id){
        res.region.country.map((item, i) => {
          if (item.region_id == res.data.province) {
            multiIndex[0] = i;
          }
        })
        var ii = 0;
        res.region.province.map((item, i) => {
          if (item.parent_id == res.data.province) {

            if (item.region_id == res.data.city) {
              multiIndex[1] = ii;
            }
            ++ii;
          }
        })
        var ii = 0;
        res.region.city.map((item, i) => {
          if (item.parent_id == res.data.city) {
            if (item.region_id == res.data.district) {
              multiIndex[2] = ii;
            }
            ++ii;
          }
        })
        self.setData({
          multiIndex: multiIndex,
        })
          self.addressAssign(res.region, self, self.data.column, multiIndex);
        }else{
          self.addressAssign(res.region, self, self.data.column, self.data.multiIndex);
        }

      }
    })
  },

  /**
   * 信息输入
   * @author darlang
   */
  bindInputChange(e){
    var type = e.currentTarget.dataset.type;
    var param = this.data.param;
    if(type == 'name'){
      param.consignee = e.detail.value;
    }else if(type == 'mobile'){
      param.mobile = e.detail.value;
    }else if(type == "addr"){
      param.address = e.detail.value;
    }
    this.setData({
      param:param,
    })
  },
  /**
   * 信息提交
   * @author darlang
   */
  submitAddress(e){
    var param = this.data.param;
    var info = this.data.info;
    param.user_id = info.user_id;
    param.address_id = this.data.id;
    if (!param.address_id || param.address_id == undefined) {
      param.type = 'add';
    } else {
      param.type = 'edit';
    }

    if(!param.address_id){
      if(!param.consignee){
        wx.showToast({
          title: '请输入收货人姓名',
          icon:"none",
        })
        return;
      }
      if (!param.mobile) {
        wx.showToast({
          title: '请输入收货人姓联系方式',
          icon: "none",
        })
        return;
      }
      if (!checkMobile(param.mobile)) {
        wx.showToast({
          title: '请输入正确的手机号码',
          icon: "none",
        })
          return false;
        }
      if (!param.address) {
        wx.showToast({
          title: '请输入详细地址',
          icon: "none",
        })
        return false;
      }
    }else{
      for(var i in param){
        if(i == 'consignee'){
          if(!param.consignee){
            wx.showToast({
              title: '请输入收货人姓名',
              icon: "none",
            })
            return;
          }
        }
        if(i == 'mobile'){
          if (!param.mobile) {
            wx.showToast({
              title: '请输入收货人姓联系方式',
              icon: "none",
            })
            return;
          }
          if (!checkMobile(param.mobile)) {
            wx.showToast({
              title: '请输入正确的手机号码',
              icon: "none",
            })
            return false;
          }
        }
        if(i == 'address'){
          if (!param.address) {
            wx.showToast({
              title: '请输入详细地址',
              icon: "none",
            })
            return false;
          }
        }
      }
    }

    param.country = 1;
    var multiIndex = this.data.multiIndex;
    var region = this.data.region;
    var multiArray = this.data.multiArray;
    param.province = multiArray[0][multiIndex[0]].region_id;
    param.city = multiArray[1][multiIndex[1]].region_id;
    param.district = multiArray[2][multiIndex[2]].region_id;
    if (!param.province || !param.city || !param.district){
      wx.showToast({
        title: '请选择家庭地址',
        icon: "none",
      })
      return false;
    }

    setDefaultAddress(param).then(res=>{
      if(res.error_code == 10000){
        wx.showToast({
          title: '保存成功',
        })
        setTimeout(function(){
          wx.navigateBack({
            delta:1,
          })
        },1500)
      }
      console.log(res)
    })
  },


  /**
   * 地址切换
   * @author darlang
   */
  addressAssign(res, self, column, multiIndex){
    var multiArray = self.data.multiArray;
    // var multiIndex = self.data.multiIndex;
    multiArray[0] = res.country;
    multiArray[1] = [];
    res.province.map(e => {
      if (e.parent_id == multiArray[0][multiIndex[0]].region_id) {
        multiArray[1].push(e);
      }
    })
    multiArray[2] = [];
    res.city.map(e => {
      if (e.parent_id == multiArray[1][multiIndex[1]].region_id) {
        multiArray[2].push(e);
      }
    })
    self.setData({
      multiArray: multiArray,
    })
  },

  // /**
  //  * 初始化地址-编辑时
  //  * @author darlang
  //  */
  // initAddress() {
  //   if (!this.loginModal.check()) {
  //     return false;
  //   }
  //   let item = wx.getStorageSync('cache_address_edit') || '';
  //   if (!item) {
  //     this.setData({
  //       type: 'add'
  //     });
  //     this.initRegionsData();
  //     return false;
  //   }
  //   // 编辑项存在
  //   if (item.regions && item.regions[0] && item.regions[0].id === 1) {
  //     item.regions.splice(0,1);
  //   }
  //   let regionMsg = item.regions.map(k => k.name).join('-');

  //   this.setData({
  //     consigneeParams: item,
  //     regionItem: item.regions,
  //     regionMsg: regionMsg,
  //     isDefault: item.is_default || false
  //   });
  //   this.initRegionsData();
  //   wx.removeStorageSync('cache_address_edit');
  // },

  // /**
  //  * 初始化数据
  //  * @author darlang
  //  */
  // initRegionsData() {
  //   let regionsJsonData = wx.getStorageSync('regionsJsonData') || '';
  //   wx.showLoading({title: '请求数据中...',mask: true});
  //   if (regionsJsonData && typeof regionsJsonData === 'object') {
  //     this.setData({
  //       regionsData: regionsJsonData
  //     });
  //     this.changeRegionsData();
  //     wx.hideLoading();
  //     return false;
  //   }
  //   GetRegionList().then(res => {
  //     if (res.regions && res.regions.length > 0) {
  //       wx.setStorageSync('regionsJsonData', res.regions[0]);
  //       this.setData({
  //         regionsData: res.regions[0]
  //       });
  //       this.changeRegionsData();
  //     }else{
  //       showToast('后台地址区域数据为空');
  //     }

  //   });
  // },

  // /**
  //  * 省市区数据对齐
  //  * @author darlang
  //  */
  // changeRegionsData() {
  //   let regionsData = this.data.regionsData;
  //   let seleIndex = this.data.regionSelector;
  //   let l = seleIndex[0] || 0;
  //   let c = seleIndex[1] || 0;
  //   // let r = seleIndex[2] || 0;
  //   let regionItem = this.data.regionItem;
  //   if (regionItem) {
  //     this.alignRegionSelect(regionsData);
  //     this.data.regionItem = '';
  //     setTimeout(() => {
  //       this.changeRegionsData();
  //     },300);
  //   }
  //   if (!regionsData) {
  //     this.initRegionsData();
  //   }
  //   try {
  //     // 省
  //     let proData = regionsData.regions;
  //     let provinceData = proData.map(k => {return {name: k.name, id: k.id};});
  //     this.setData({
  //       provinceData: provinceData
  //     });
  //     // 市
  //     let citData = proData[l].regions;
  //     let cityData = citData.map(k => {return {name: k.name, id: k.id};});
  //     this.setData({
  //       cityData: cityData
  //     });
  //     // 区
  //     let disData = citData[c].regions;
  //     let districtData = disData.map(k => {return {name: k.name, id: k.id};});
  //     this.setData({
  //       districtData: districtData
  //     });
  //   } catch(e) {
  //     // console.log(e);
  //   }
  //   // 重置索引
  //   this.setData({
  //     regionSelector: seleIndex
  //   });
  // },

  // /**
  //  * 修改数据对齐
  //  * @author darlang
  //  * @param  {Array}   data 地区数据
  //  */
  // alignRegionSelect(data) {
  //   let regionItem = this.data.regionItem;
  //   let i = this.data.dalang || 0;
  //   let id = regionItem[i].id;
  //   let curItem = this.alignRegionSelectX(id,data);
  //   let seleIndex = this.data.regionSelector || [];
  //   seleIndex[i] = curItem.i || 0;

  //   this.setData({
  //     regionSelector: seleIndex,
  //     "consigneeParams.region": curItem.id
  //   });

  //   i++;
  //   this.data.dalang = i;
  //   if (regionItem[i]) {
  //     this.alignRegionSelect(data);
  //   }
  // },

  // /**
  //  * 修改数据对齐-内
  //  * @author darlang
  //  * @param  {[type]}   id   滑动地区id
  //  * @param  {[type]}   data 地区数据
  //  */
  // alignRegionSelectX(id,data) {
  //   if (data && data.regions) {
  //     // 处理子项
  //     for (let k = 0; k < data.regions.length; k++) {
  //       let item = data.regions[k];
  //       if (item.id === id) {// 是否存在
  //         return {id: item.id, i: k};
  //       }else{
  //         if (item.regions) {// 不存在则往下查找，周而复始
  //           let items = this.alignRegionSelectX(id,item.regions);
  //           if (items) {
  //             return items;
  //           }
  //         }
  //       }
  //     }
  //   }else{
  //     if (data) {
  //       // 处理父项
  //       for (let k = 0; k < data.length; k++) {
  //         let item = data[k];
  //         if (item.id === id) {
  //           return {id: item.id, i: k};
  //         }else{
  //           if (item.regions) {
  //             let items = this.alignRegionSelectX(id,item.regions);
  //             if (items) {
  //               return items;
  //             }
  //           }
  //         }
  //       }
  //     }
  //   }
  // },

  // /**
  //  * 拖动修改省市区数据
  //  * @author darlang
  //  */
  // changeRegionsPicker(e) {
  //   let seleIndex = e.detail.value;
  //   this.setData({
  //     regionSelector: seleIndex
  //   });
  //   this.changeRegionsData();
  // },

  // /**
  //  * 切换省市区弹出
  //  * @author darlang
  //  */
  // changePickerState() {
  //   if (this.data.regionsPickerState) {
  //     this.changeRegionsData();
  //   }
  //   this.setData({
  //     regionsPickerState: !this.data.regionsPickerState
  //   });
  // },

  // /**
  //  * 确认选择
  //  * @author darlang
  //  */
  // getRegionsChange() {
  //   let p = this.data.provinceData;
  //   let c = this.data.cityData;
  //   let d = this.data.districtData;
  //   let s = this.data.regionSelector;
  //   let pt = '', ct = '', dt = '',ps = '', cs = '', ds = '';
  //   if (p[s[0]] && p[s[0]].name) {
  //     pt = p[s[0]].name;
  //     ps = p[s[0]].id;
  //   }
  //   if (c[s[1]] && c[s[1]].name) {
  //     ct = '-'+c[s[1]].name;
  //     cs = c[s[1]].id;
  //   }
  //   if (d[s[2]] && d[s[2]].name) {
  //     dt = '-'+d[s[2]].name;
  //     ds = d[s[2]].id;
  //   }
  //   if (!ds) {
  //     if (!cs) {
  //       ds = ps;
  //     }else{
  //       ds = cs;
  //     }
  //   }
  //   let regionMsg = pt+ct+dt;
  //   // console.log('选择了->',regionMsg);
  //   this.setData({
  //     'consigneeParams.region': ds,
  //     regionMsg: regionMsg
  //   });
  //   this.changePickerState();
  // },

  // /**
  //  * 绑定输入
  //  * @author darlang
  //  */
  // bindInputChange(e) {
  //   let items = e.currentTarget.dataset;
  //   let type = items.type;
  //   let v = e.detail.value || '';
  //   if (type === 'name') {
  //     this.setData({
  //       "consigneeParams.name": v
  //     });
  //   }
  //   if (type === 'mobile') {
  //     this.setData({
  //       "consigneeParams.mobile": v
  //     });
  //   }
  //   if (type === 'tel') {
  //     this.setData({
  //       "consigneeParams.tel": v
  //     });
  //   }
  //   if (type === 'code') {
  //     this.setData({
  //       "consigneeParams.zip_code": v
  //     });
  //   }
  //   if (type === 'default') {
  //     this.setData({
  //       "isDefault": v || false
  //     });
  //   }
  //   if (type === 'addr') {
  //     this.setData({
  //       "consigneeParams.address": v
  //     });
  //   }
  // },



  

  // /**
  //  * 地址添加/修改
  //  * @author darlang
  //  */
  // submitAddress() {
  //   let params = this.data.consigneeParams;
  //   params.consignee = this.data.id || '';

  //   if (!params.name) {
  //     showToast('姓名不能为空');
  //     return false;
  //   }
  //   if (!params.mobile) {
  //     showToast('手机不能为空');
  //     return false;
  //   }else{
  //     if (!checkMobile(params.mobile)) {
  //       showToast('请输入正确的手机号码');
  //       return false;
  //     }
  //   }
  //   if (!params.region) {
  //     showToast('请选择地区');
  //     return false;
  //   }
  //   if (!params.address) {
  //     showToast('详细地址不能为空');
  //     return false;
  //   }
  //   wx.showLoading({title: '保存中...',mask: true});
  //   ChangeConsigneeInfo(params.consignee,params.name,params.mobile,params.tel,params.zip_code,params.region,params.address).then((res) => {
  //     try {
  //       showToast('保存成功','success');
  //       let consignee = this.data.id;
  //       if (this.data.type === 'add') {
  //         consignee = res.consignee.id;
  //       }
  //       this.setDefaultAddress(consignee);
  //     } catch(e) {
  //       showToast('保存异常','warning');
  //     }

  //     setTimeout(() => {
  //       wx.navigateBack();
  //     },800);
  //   }).catch(err => {
  //     setTimeout(() => {
  //       if (err.data.error_code === 10000) {
  //         showToast('修改失败,该地址不存在,无法修改,请登录后添加','none',1300);
  //       }
  //     },800);
  //   });
  // },


  // /**
  //  * 地址删除
  //  * @author darlang
  //  */
  // onDeleteConsignee() {
  //   let self = this;
  //   wx.showModal({
  //     title: '确认删除',
  //     content: '是否要删除？',
  //     success: (res) => {
  //       if(res.confirm) {
  //         DeleteConsigneeInfo(self.data.id).then(() => {
  //           showToast('删除成功','success');
  //           setTimeout(() => {
  //             wx.navigateBack();
  //           },500);
  //         });
  //       }
  //     }
  //   });
  // },

  // /**
  //  * 设定默认收货地址
  //  * @author darlang
  //  */
  // setDefaultAddress(consignee) {
  //   let isDefault = this.data.isDefault;
  //   if (!isDefault) {
  //     return false;
  //   }
  //   SetDefaultConsignee(consignee);
  // },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    // 页面渲染完成
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 页面显示
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    // 页面隐藏

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    // 页面关闭
  }
});